package library.RemoteControl;

import org.apache.log4j.*;

/**
 * Class_VoidRemoteControl defines a remote control that void all
 * graphical commands for Command Line Instruction for example.<br/>
 * @author JNC
 */
public class VoidRemoteControl implements RemoteControlInterface {

    /**
     * The log4j logger
     */
     private static final Logger _logger = Logger.getLogger(VoidRemoteControl.class);
    
    /**
     * Constructor
     */
    public VoidRemoteControl() {
        _logger.debug("ExchangeZoneWithoutFrame constructor");
    }
    
    /**
     * Registers an object in order to let objects interact together through 
     * the remote control. <br/>
     * In this case, do nothing.<br/>
     * @param myObject
     * Object to register
     */
    public void register(Object myObject) {
    }
    
    /**
     * Unregisters an object from the remote control.<br/>
     * In this case, do nothing.<br/>
     * @param myObject
     * Object to unregister
     */
    public void unregister(Object myObject) {
    }
    
    /**
     * Enables / disables all the commands of the frame.<br/>
     * In this case, do nothing.<br/>
     * @param myMustBeEnabled
     * Unused in this context.
     */
    public void enableCommands(boolean myMustBeEnabled) {
    }
    
    /**
     * Starts the progress bar in indeterminate mode.<br/>
     * In this case, do nothing.<br/>
     */
    public void startIndeterminateProgressBar() {
    }
    
    /**
     * Stops the progress bar from determinate mode.<br/>
     * In this case, do nothing.<br/>
     */
    public void stopIndeterminateProgressBar() {
    }
    
    /**
     * Initializes the progress bar for determinate mode.<br/>
     * In this case, do nothing.<br/>
     */
    public void initDeterminateProgressBar() {
    }

    /** 
     * Sets a progress to the progress bar.<br/>
     * In this case, do nothing.<br/>
     * @param myProgress
     * Integer from 0 to 100 showing the current progress
     */
    public void setDeterminateProgressBar(int myProgress) {
        _logger.info("setDeterminateProgressBar : progress is "  + myProgress); 
    }
    
    /**
     * Stops the progress bar from indeterminate mode.<br/>
     * In this case, do nothing.<br/>
     */    
    public void stopDeterminateProgressBar() {
        _logger.debug("stopDeterminateProgressBar"); 
    }

    /**
     * Reinits the progress bar
     */
    public void reinitProgressBar() {
        _logger.debug("reinitProgressBar");
    }
    
    /**
     * Sets all labels referencing a given jpeg file and request the picture to
     * be displayed.<br/>
     * In this case, do nothing.<br/>
     * @param myNameBefore
     * The name of the file before renaming
     * @param myDigitalizationDate
     * The digitalization date of the file as read in the jpeg EXIF metadata
     * @param myTitle
     * The title of the file as read in the jpeg EXIF metadata
     * @param myNameAfter
     * The name of the file after renaming
     * @param mysPicturePath
     * The path of the jpeg file being processed
     */
    public void setLabelsAndShowPicture(String myNameBefore, String myDigitalizationDate, String myTitle, String myNameAfter, String mysPicturePath) {
        _logger.debug("setLabelsAndShowPicture");
    }
    
    /**
     * should stop the processing thread.<br/>
     * In this case, do nothing.<br/>
     */
    public void requestProcessingThreadToStop() {
    }
    
    /**
     * Sets the text of the GO/CANCEL button to GO and activates the button.<br/>
     * In this case, do nothing.<br/>
     */
    public void reinitGoCancelButton() {
    }
    
    /**
     * Activates/desactivates the GO/CANCEL button.<br/>
     * In this case, do nothing.<br/>
     * @param myActivation Indicates if the button should be activated (true) or desactivated (false)
     */
    public void activateGoCancelButton(boolean myActivation) {
    }           
    
    /**
     * Asks if the processing thread is still alive.<br/>
     * @return
     * Always false
     */
    public boolean isProcessingThreadAlive() {
        return false;
    }
    
    /**
     * Disables the auto scroll down capability of the jTextArea
     * true to enable scroll down
     * false to disable scroll down
     */
    public void disableAutoScrollDownTemporary() {
    }
    
    /**
     * Change the border of the text area when the auto scroll down is enbaled / disabled
     * @param isTransient
     */
    public void changeBorderToTransient(boolean isTransient) {
    }
}